package com.songlanyun.modules.config.model;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;

import com.songlanyun.common.validator.group.AddGroup;
import com.songlanyun.common.validator.group.UpdateGroup;
import lombok.Data;

/**
 * 分润配置
 *
 * @author lijiahe
 * @email
 * @date 2022-09-21 14:58:22
 */
@Data
public class ProfitSharingDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Integer id;
    /**
     * 直推分润
     */
    @DecimalMin(value = "0.01", message = "直推分润最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "直推分润最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal pushStraight;
    /**
     * 间推分润
     */
    @DecimalMin(value = "0.01", message = "间推分润最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "间推分润最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal pushBetween;
    /**
     * 团长分润
     */
    @DecimalMin(value = "0.01", message = "团长分润最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "团长分润最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal headOfGroup;
    /**
     * 间推团长分润
     */
    @DecimalMin(value = "0.01", message = "间推团长分润最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "间推团长分润最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal interimHead;
    /**
     * 线上订单属地分润
     */
    @DecimalMin(value = "0.01", message = "线上订单属地分润最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "线上订单属地分润最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal territorial;
    /**
     * 消费者直推奖励
     */
    @DecimalMin(value = "0.01", message = "消费者直推奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "消费者直推奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal consumerDirectPushReward;
    /**
     * 商家直推奖励
     */
    @DecimalMin(value = "0.01", message = "商家直推奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "商家直推奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal shopDirectPushReward;
    /**
     * 消费者团长奖励
     */
    @DecimalMin(value = "0.01", message = "消费者团长奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "消费者团长奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal consumerRegimentReward;
    /**
     * 商家团长奖励
     */
    @DecimalMin(value = "0.01", message = "商家团长奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "商家团长奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal shopRegimentReward;
    /**
     * 消费者间推团长奖励
     */
    @DecimalMin(value = "0.01", message = "消费者间推团长奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "消费者间推团长奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal consumerInterpositionRegimentReward;
    /**
     * 商家间推团长奖励
     */
    @DecimalMin(value = "0.01", message = "商家间推团长奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "商家间推团长奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal shopInterpositionRegimentReward;
    /**
     * 消费者属地分润奖励
     */
    @DecimalMin(value = "0.01", message = "消费者属地分润奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "消费者属地分润奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal consumerTerritorialReward;
    /**
     * 商家属地分润奖励
     */
    @DecimalMin(value = "0.01", message = "商家属地分润奖励最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "商家属地分润奖励最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal shopTerritorialReward;
    /**
     * 线下订单消费者贡献值
     */
    @DecimalMin(value = "0.01", message = "线下订单消费者贡献值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "线下订单消费者贡献值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal offlineOrderConsumerContribute;
    /**
     * 线下订单商家贡献值
     */
    @DecimalMin(value = "0.01", message = "线下订单商家贡献值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "线下订单商家贡献值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal offlineOrderShopContribute;


    /**
     *  福利区-直推分润
     */
    @DecimalMin(value = "0.01", message = "福利区-直推分润值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "福利区-直推分润值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal welfarePushStraight;

    /**
     *  福利区-团长分润
     */
    @DecimalMin(value = "0.01", message = "福利区-团长分润值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "福利区-团长分润值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal welfareHeadOfGroup;

    /**
     *  福利区-间推团长分润
     */
    @DecimalMin(value = "0.01", message = "福利区-间推团长分润值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "福利区-间推团长分润值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal welfareInterimHead;

    /**
     *  福利区-线上订单属地分润
     */
    @DecimalMin(value = "0.01", message = "福利区-线上订单属地分润值最小是0.01", groups = {AddGroup.class, UpdateGroup.class})
    @DecimalMax(value = "100.0", message = "福利区-线上订单属地分润值最大是100.0", groups = {AddGroup.class, UpdateGroup.class})
    private BigDecimal welfareTerritorial;
}
